package com.pan.behavioral.visitor;


import com.pan.behavioral.visitor.pattern.part.*;
import com.pan.behavioral.visitor.pattern.visit.FrameVisitor;

/**
 * 访问者模式
 * 结构：
 * visitor 包含了一部分数据，同时控制了各个Part的执行
 * Part 包含了一部分数据，同时包含了对这部分数据的操作
 */
public class VisitorApplication {

    public static void main(String[] args) {
        FrameVisitor frameVisitor = new FrameVisitor();
        frameVisitor.visit(new SetClosePart());
        frameVisitor.visit(new ShapePart());
        frameVisitor.visit(new SizePart());
        frameVisitor.visit(new VisiblePart());
    }
}
